package org.activiti.designer.preferences;
import org.activiti.designer.eclipse.common.ActivitiPlugin;
import org.activiti.designer.util.editor.ModifiableListEditor;
import org.activiti.designer.util.preferences.Preferences;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Group;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.PlatformUI;
public class AlfrescoPreferencesPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public AlfrescoPreferencesPage() {
super(GRID);
}
public void createFieldEditors() {
Group group = new Group(getFieldEditorParent(), SWT.BORDER);
group.setLayoutData(new GridData(SWT.FILL, SWT.NULL, true, false, 2, 1));
addField(new BooleanFieldEditor(Preferences.ALFRESCO_ENABLE.getPreferenceId(),
"&Enable Alfresco elements", group));
Group groupStartEvent = new Group(getFieldEditorParent(), SWT.BORDER);
groupStartEvent.setLayoutData(new GridData(SWT.FILL, SWT.NULL, true, false, 2, 1));
addField(new ModifiableListEditor(Preferences.ALFRESCO_FORMTYPES_STARTEVENT.getPreferenceId(),
"&Start event form types", groupStartEvent) {
@Override
protected String[] parseString(String input) {
if(input != null && input.length() > 0) {
return input.split("�");
}
return new String[] {};
}
@Override
protected String getNewInputObject() {
InputDialog entryDialog = new InputDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
"New entry", "New entry:", null, null);
if (entryDialog.open() == InputDialog.OK) {
return entryDialog.getValue();
}
return null;
}
@Override
protected String getModifiedEntry(String original) {
InputDialog entryDialog = new InputDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
"New entry", "New entry:", original, null);
if (entryDialog.open() == InputDialog.OK) {
return entryDialog.getValue();
}
return null;
}
@Override
protected String createList(String[] outputArray) {
StringBuilder output = new StringBuilder();
if(outputArray != null && outputArray.length > 0) {
for (String string : outputArray) {
if(output.length() > 0) {
output.append("�");
}
output.append(string);
}
}
return output.toString();
}
});
Group groupUsertask = new Group(getFieldEditorParent(), SWT.BORDER);
groupUsertask.setLayoutData(new GridData(SWT.FILL, SWT.NULL, true, false, 2, 1));
addField(new ModifiableListEditor(Preferences.ALFRESCO_FORMTYPES_USERTASK.getPreferenceId(),
"&User task form types", groupUsertask) {
@Override
protected String[] parseString(String input) {
if(input != null && input.length() > 0) {
return input.split("�");
}
return new String[] {};
}
@Override
protected String getNewInputObject() {
InputDialog entryDialog = new InputDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
"New entry", "New entry:", null, null);
if (entryDialog.open() == InputDialog.OK) {
return entryDialog.getValue();
}
return null;
}
@Override
protected String getModifiedEntry(String original) {
InputDialog entryDialog = new InputDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
"New entry", "New entry:", original, null);
if (entryDialog.open() == InputDialog.OK) {
return entryDialog.getValue();
}
return null;
}
@Override
protected String createList(String[] outputArray) {
StringBuilder output = new StringBuilder();
if(outputArray != null && outputArray.length > 0) {
for (String string : outputArray) {
if(output.length() > 0) {
output.append("�");
}
output.append(string);
}
}
return output.toString();
}
});
}
@Override
public void init(IWorkbench workbench) {
IPreferenceStore prefStore = ActivitiPlugin.getDefault().getPreferenceStore();
setPreferenceStore(prefStore);
setDescription("Alfresco extension settings");
setTitle("Alfresco extension settings");
}
}